1. Field of the Invention
The present invention relates generally to the field of network data transmission, and more particularly to the field of distributed network transmission protocol systems and methods.
2. Description of Background Art
There are various techniques for efficiently and reliably transferring information between terminals (nodes) of a computer network. One such technique is packet switching. In packet switching, a transmitting (source) node sends a message to a (destination) receiving node. The message is divided into many variable-size portions. These portions are called packets. Each packet includes a data portion, a packet header, and, frequently, error detection information, e.g., parity information. The data portion includes the information in the message that is to be sent along with other protocol information from higher protocol layers in the network, e.g., the application layer, presentation layer, session layer, as set forth in the OSI reference model. The packet header includes information relating to, among other information, the location of the packet in the packet sequence.
In order to transport the packets between nodes of the network, additional information is required. This additional information is frequently stored in a frame header. A frame header is added to the packets and the combination of a packet and a frame header is called a frame. Each network limits the size of a frame, therefore, if the message is too large to fit in a single frame, the message will be separated into two or more frames. The information included in the frame header includes information identifying the ultimate destination node for the frame.
Frames are transmitted through the network using routers. For example, a frame can be transmitted from a first router to a second router, then from the second router to a third router, and then from the third router to the destination node. If the rate of incoming traffic at a first router is greater than the maximum frame transmission rate of the first router then a frame buffer in the first router will fill and, eventually, either the second router will instruct the first router to temporarily stop transmitting data or received frames will overwrite frames previously stored in the buffer and these overwritten frames will be lost. Most systems employ a transmission control system where the receiving router, e.g., the second router, can send a control signal to the transmitting router that instructs the transmitting router to temporarily stop transmitting.
Conventional transmission control systems utilize either a single signal line for both data frames and control signals or a dedicated control signal line. An example of a conventional transmission control system is an RS232 transmission protocol. In the RS232 transmission protocol a transmitting network element, e.g., a router, transmits frames to a receiving network element via a frame signal line. If the receiving router wants the transmitting router to stop transmitting frames, the receiving router generates a transmit off (XOFF) control signal and sends the control signal to the transmitting router via the frame signal line.
In high frequency networks, e.g., 500 MHz, the time necessary for the control signal to reach the transmitting router introduces a significant latency into the system. Specifically, if a control signal line is used to transport a control signal from the receiving router to the transmitting router, then the latency that is introduced is approximately equal to the time taken by a signal to travel the link distance between the transmitting router and the receiving router. If the link distance is approximately two meters (2 m), and the clock frequency is 500 MHz, where, for every clock cycle one data bit is sent on each signal line in the link, then approximately 3.3 bits (3.3 bits=500 MHz/300 km/s*2 m) are sent on each signal line by the transmitting router between the time that the receiving router sends the control signal and the time that the transmitting router receives the signal. In addition, the same number of bits are currently on the signal line, therefore approximately 6.6 bits are received by the receiving router after transmitting the XOFF control signal. If there are many signal lines on the link, e.g., 32, then approximately 212 bits (6.6 bits*32 signal lines) can be received by the receiving router after instructing the transmitting router to stop transmitting. These 212 bits must be stored in a buffer in the receiving router or else data will be lost. In order to store these bits, the receiving router must maintain extra buffers to capture all of these bits. Buffers are expensive and an inefficient use of buffers can have a significant impact on the performance of a network. Accordingly, setting aside enough buffer space to store at least 212 bits is an inefficient use of system resources. In the present example, 212 buffers spaces are reserved, and when the remaining buffer spaces in the receiving router are full, the receiving router transmits an XOFF control signal in order to ensure that all of the data that is sent by the data transmitting router between the transmission of the XOFF control signal by the data receiving router and the receipt of the XOFF control signal by the data transmitting router is captured and stored in a buffer space. However, not all of these bits are necessarily part of a data frame. Frequently, some of the bits are "idle" bits or other "garbage" bits that are sent over the network when no data frames or control signals are being transmitted. Accordingly, there is no need to store these idle bits. Therefore, when idle bits are transmitted, not all of the reserved buffer spaces are used. As described above, buffers are expensive and the RS232 transmission protocol is an inefficient use of these buffers.
When using the RS232 transmission protocol and a single control signal line, the transmitting router ceases data transmission after receiving the XOFF signal. When sufficient buffers become available in the receiving router, the receiving router generates a transmit-on (XON) signal and transmits the XON signal to the transmitting router. After receiving the XON signal the transmitting router will resume data transmission. However, this system introduces latency in the network that is equal to the time between sending the XON control signal and receiving the first data link.
If, instead of using a separate control signal line, the network uses a single data line for both control signals sent by the receiver and data frames sent by the transmitter, then the latency of the system further increases because the transmitting router must stop transmitting in order for the receiving router to transmit a control signal. Accordingly, a latency period that is approximately equal to the time required for a signal to travel from the transmitting router to the receiving router and back is introduced into the network.
What is needed is a flow control protocol system and method that: (1) efficiently utilizes the buffers in a receiving router; (2) minimizes network latency introduced by control signals; (3) can force the generation and transmission of a control signal; (4) multiplexes a control signal with other frames transmitted to the same port; (5) is robust, i.e., it can recover from transmission errors; (6) is adaptable to multiple priority level transmission frames; and (7) is adaptable to buffer resources provide in the receiver.